/*
 * HSM Proxy Project.
 * Copyright (C) 2013 FedICT.
 *
 * This is free software; you can redistribute it and/or modify it
 * under the terms of the GNU Lesser General Public License version
 * 3.0 as published by the Free Software Foundation.
 *
 * This software is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this software; if not, see 
 * http://www.gnu.org/licenses/.
 */

package test.integ.be.fedict.hsm.ws;

import javax.jws.HandlerChain;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.xml.ws.BindingType;
import javax.xml.ws.soap.SOAPBinding;

import be.fedict.hsm.ws.jaxb.dss.ResponseBaseType;
import be.fedict.hsm.ws.jaxb.dss.SignRequest;
import be.fedict.hsm.ws.jaxb.dss.SignResponse;
import be.fedict.hsm.ws.jaxb.dss.VerifyRequest;
import be.fedict.hsm.ws.jaxb.hsm.GetAliasesRequest;
import be.fedict.hsm.ws.jaxb.hsm.GetCertificateChainRequest;
import be.fedict.hsm.ws.jaxws.DigitalSignatureServicePortType;

@WebService(endpointInterface = "be.fedict.hsm.ws.jaxws.DigitalSignatureServicePortType", targetNamespace = "urn:be:fedict:hsm-proxy:ws", serviceName = "DigitalSignatureService")
@BindingType(SOAPBinding.SOAP12HTTP_BINDING)
@HandlerChain(file = "/test-security-hsm-proxy-ws-handlers.xml")
public class DigitalSignatureServiceTestPort implements
		DigitalSignatureServicePortType {

	@Override
	@WebMethod
	@WebResult(name = "VerifyResponse", targetNamespace = "urn:oasis:names:tc:dss:1.0:core:schema", partName = "VerifyResponse")
	public ResponseBaseType verify(
			@WebParam(name = "VerifyRequest", targetNamespace = "urn:oasis:names:tc:dss:1.0:core:schema", partName = "VerifyRequest") VerifyRequest verifyRequest) {
		return null;
	}

	@Override
	@WebMethod
	@WebResult(name = "SignResponse", targetNamespace = "urn:oasis:names:tc:dss:1.0:core:schema", partName = "SignResponse")
	public SignResponse sign(
			@WebParam(name = "SignRequest", targetNamespace = "urn:oasis:names:tc:dss:1.0:core:schema", partName = "SignRequest") SignRequest signRequest) {
		return null;
	}

	@Override
	@WebMethod(operationName = "get-aliases")
	@WebResult(name = "Response", targetNamespace = "urn:oasis:names:tc:dss:1.0:core:schema", partName = "GetAliasesResponse")
	public ResponseBaseType getAliases(
			@WebParam(name = "GetAliasesRequest", targetNamespace = "urn:be:fedict:hsm-proxy:ws:dss:profiles:hsm-proxy:1.0", partName = "GetAliasesRequest") GetAliasesRequest getAliasesRequest) {
		return null;
	}

	@Override
	@WebMethod(operationName = "get-certificate-chain")
	@WebResult(name = "Response", targetNamespace = "urn:oasis:names:tc:dss:1.0:core:schema", partName = "GetCertificateChainResponse")
	public ResponseBaseType getCertificateChain(
			@WebParam(name = "GetCertificateChainRequest", targetNamespace = "urn:be:fedict:hsm-proxy:ws:dss:profiles:hsm-proxy:1.0", partName = "GetCertificateChainRequest") GetCertificateChainRequest getCertificateChainRequest) {
		return null;
	}
}
